// 加载jweixin
const userAgent = navigator.userAgent;
if (userAgent.indexOf('AlipayClient') > -1) {
  // 支付宝小程序的 JS-SDK 防止 404 需要动态加载，如果不需要兼容支付宝小程序，则无需引用此 JS 文件。
  document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>');
} else if (/QQ/i.test(userAgent) && /miniProgram/i.test(userAgent)) {
  // QQ 小程序
  document.write('<script type="text/javascript" src="https://qqq.gtimg.cn/miniprogram/webview_jssdk/qqjssdk-1.0.0.js"><\/script>');
} else if (/miniProgram/i.test(userAgent)) {
  // 微信小程序 JS-SDK 如果不需要兼容微信小程序，则无需引用此 JS 文件。
  document.write('<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"><\/script>');
} else if (/toutiaomicroapp/i.test(userAgent)) {
  // 字节跳动小程序 JS-SDK 如果不需要兼容字节跳动小程序，则无需引用此 JS 文件。
  document.write('<script type="text/javascript" src="https://s3.pstatp.com/toutiao/tmajssdk/jssdk-1.0.1.js"><\/script>');
} else if (/swan/i.test(userAgent)) {
  // 百度小程序 JS-SDK 如果不需要兼容百度小程序，则无需引用此 JS 文件。
  document.write('<script type="text/javascript" src="https://b.bdstatic.com/searchbox/icms/searchbox/js/swan-2.0.18.js"><\/script>');
}

// 加载webview
document.write('<script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"><\/script>');

// 定义SDK方法
const wxLw =  {
  /**
   * 获取微信数据
   *
   * 获取用户信息 getUserInfo
   * 获取微信步数 getWeRun
   * 获取手机号   getPhoneNumber
   * 获取地理位置 getLocation
   */
  getWxData: (type) => {
    // 去除小程序传值参数
    let removeUrl = funcUrlDel('WeChatData')
    const localUrl = encodeURIComponent(removeUrl)
    return new Promise ((res, rej) => {
      uni.navigateTo({
        url: "/pages/view/get-data?lsiwx="+ type +"&url=" + localUrl
      })
    }).then(
      (res) => {console.log(res)},
      (err) => {console.log(err)}
    )
  },
  /**
   * 推送数据给页面
   *
   * 分享微信好友 setShareUser
   */
  setWxData: (type, data) => {
    let htmlData = encodeURIComponent(JSON.stringify(data))
    // 去除小程序传值参数
    let removeUrl = funcUrlDel('WeChatData')
    const localUrl = encodeURIComponent(removeUrl)
    return new Promise ((res, rej) => {
      uni.navigateTo({
        url: "/pages/view/get-data?lsiwx="+ type +"&url=" + localUrl +"&htmlData=" + htmlData
      })
    }).then(
      (res) => {console.log(res)},
      (err) => {console.log(err)}
    )
  },
  /**
   * 获取设备端
   */
  getWXEnv: () => {
    return new Promise ((res, rej) => {
      console.log('------------------------','2222222222222222222222')
      uni.getEnv((data) => {
        console.log('------------------------',data)
        res(data)
      })
    })
  },
  /**
   * 获取返回值方式
   * @returns {Promise<unknown>}
   */
  getQueryVariable: () => {
    return new Promise((res, rej) => {
      let query = window.location.search.substring(1);
      let vars = query.split("&");
      for (let i=0;i<vars.length;i++) {
        let pair = vars[i].split("=");
        if(pair[0] == 'WeChatData'){
          const data = JSON.parse(decodeURIComponent(pair[1]))
          if (data.type === 'err') {
            rej(data)
          } else {
            res(data)
          }
        }
      }
    })
  }
}

/**
 *  移除地址中某个参数
 */
function funcUrlDel(names) {
  if(typeof(names)=='string'){
    names = [names];
  }
  let loca = window.location;
  let obj = {}
  let arr = loca.search.substr(1).split("&");
  //获取参数转换为object
  for(let i = 0; i < arr.length; i++) {
    arr[i] = arr[i].split("=");
    obj[arr[i][0]] = arr[i][1];
  };
  //删除指定参数
  for(let i = 0; i < names.length; i++) {
    delete obj[names[i]];
  }
  //重新拼接url
  let url = loca.origin + loca.pathname + "?" + JSON.stringify(obj).replace(/[\"\{\}]/g, "").replace(/\:/g, "=").replace(/\,/g, "&");
  return url;
}
